﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using Sebrae.Academico.InfraEstrutura.Seguranca.Autenticacao;
using System.Web.Services.Protocols;
using Sebrae.Academico.Trilhas.BP.Services;
using Sebrae.Academico.Trilhas.Dominio.Classes;



namespace Sebrae.Academico.Trihas.Services
{


    public class DTOBuscaAtividadeInformativa
    {

        public int ID;
        public string NomeCaminhoArquivoParticipacao;
        public string Status;
        public string ArquivoParticipacao;
        public string TipoArquivoParticipacao;
        public DateTime? DataAlteracao;
        public string TextoParticipacao;
        public string TopicoTematico;
        public string UsuarioOrigem;

        public DTOBuscaAtividadeInformativa()
        {

        }
    }


    /// <summary>
    /// Summary description for AtividadeFormativa
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class AtividadeFormativa : System.Web.Services.WebService
    {

        public AuthenticationRequest autenticacao;
        private AtividadeFormativaServices atividadeFormativaServices = new AtividadeFormativaServices();

        [WebMethod]
        [SoapHeader("autenticacao")]
        public RetornoWebService CadastrarAtividadeFormativaParticipacao(int pUsuarioTrilha, int pTopicoTematico, string pTextoParticipacao,
                                                            string pNomeArquivo, string pTipoArquivo, string pCaminhoArquivo)
        {

            
                try
                {

                    if (!atividadeFormativaServices.AutenticaUsuario(autenticacao))
                    {
                        return new RetornoWebService()
                        {
                        
                            Resultado = 1,
                            Mensagem = "Usuário não autenticado pelo sistema."

                        };
                    }



                
                    atividadeFormativaServices.CadastrarAtividadeFormativa(pUsuarioTrilha, pTopicoTematico, pTextoParticipacao,
                                                                           pNomeArquivo, pTipoArquivo, pCaminhoArquivo, autenticacao.Login);
                    return new RetornoWebService() { Resultado = 0, Mensagem = "" };
                }

                catch (Exception ex)
                {

                    return new RetornoWebService()
                    {

                        Resultado = 1,
                        Mensagem = ex.Message

                    };
                }

        }


        [WebMethod]
        [SoapHeader("autenticacao")]
        public List<DTOBuscaAtividadeInformativa> BuscarListaAtividadeInformativaParticipacao(int pUsuarioTrilha, int pTopicoTematico)
        {
            IList<TrilhaAtividadeInformativaParticipacao> lstAtividade =
                atividadeFormativaServices.BuscarListaAtividadeInformativaParticipacao(pUsuarioTrilha, pTopicoTematico);


            List<DTOBuscaAtividadeInformativa> lstResult = new List<DTOBuscaAtividadeInformativa>();
            foreach (TrilhaAtividadeInformativaParticipacao atv in lstAtividade) 
            {
                lstResult.Add(new DTOBuscaAtividadeInformativa
                {

                    ID = atv.ID,
                    NomeCaminhoArquivoParticipacao = (string.IsNullOrWhiteSpace(atv.NomeCaminhoArquivoParticipacao) ? "" : atv.NomeCaminhoArquivoParticipacao),
                    Status = atv.Status,
                    ArquivoParticipacao = (string.IsNullOrWhiteSpace(atv.ArquivoParticipacao) ? "" : atv.ArquivoParticipacao),
                    TipoArquivoParticipacao = (string.IsNullOrWhiteSpace(atv.TipoArquivoParticipacao) ? "" : atv.TipoArquivoParticipacao),
                    DataAlteracao = atv.DataAlteracao,
                    TextoParticipacao = (string.IsNullOrWhiteSpace(atv.TextoParticipacao) ? "" : atv.TextoParticipacao),
                    TopicoTematico = atv.TrilhaTopicoTematico.Nome,
                    UsuarioOrigem = atv.UsuarioTrilha.Usuario.Nome
                
                });
            }


            return lstResult;
        }


    }
}
